Address some thread-safety issues. (#452598)
authorMatthias Clasen <mclasen@redhat.com>
Mon, 9 Jul 2007 18:02:38 +0000 (18:02 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 9 Jul 2007 18:02:38 +0000 (18:02 +0000)
2007-07-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtksearchenginesimple.c: Address some thread-safety
        issues.  (#452598)

svn path=/trunk/; revision=18413

ChangeLog
gtk/gtksearchenginesimple.c

index 5dca5df4059f991c47e036937fe77f1f838380dc..b2c4907fea7851d08ca77b052078f47973dbf1a9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-09  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtksearchenginesimple.c: Address some thread-safety
+       issues.  (#452598)
+
 2007-07-09  Matthias Clasen  <mclasen@redhat.com>
 
        * modules/printbackends/*/Makefile.am: Fix build problems
index a085310c4cbe02e30ba57bddc99fe3ccc9919124..a0a957a16e292e6afe38bb53226414e66c073885 100644 (file)
@@ -95,13 +95,13 @@ search_thread_data_new (GtkSearchEngineSimple *engine,
   
   data = g_new0 (SearchThreadData, 1);
   
-  data->engine = engine;
+  data->engine = g_object_ref (engine);
   uri = _gtk_query_get_location (query);
   if (uri != NULL) 
     {
       data->path = g_filename_from_uri (uri, NULL, NULL);
       g_free (uri);
-    }
+    }`
   if (data->path == NULL)
     data->path = g_strdup (g_get_home_dir ());
        
@@ -117,6 +117,7 @@ search_thread_data_new (GtkSearchEngineSimple *engine,
 static void 
 search_thread_data_free (SearchThreadData *data)
 {
+  g_object_unref (data->engine);
   g_free (data->path);
   g_strfreev (data->words);
   g_free (data);
@@ -179,7 +180,7 @@ send_batch (SearchThreadData *data)
       hits = g_new (SearchHits, 1);
       hits->uris = data->uri_hits;
       hits->thread_data = data;
-      g_idle_add (search_thread_add_hits_idle, hits);
+      gdk_threads_add_idle (search_thread_add_hits_idle, hits);
     }
   data->uri_hits = NULL;
 }
@@ -277,7 +278,7 @@ search_thread_func (gpointer user_data)
 
   send_batch (data);
   
-  g_idle_add (search_thread_done_idle, data);
+  gdk_threads_add_idle (search_thread_done_idle, data);
 #endif /* HAVE_FTW_H */
   
   return NULL;